模型在Omniglot数据集上进行了测试,Omniglot数据集包含来自 50个不同字符的 1623个不同手写字符。每一个字符都是由 20个不同的人通过亚马逊的Mechanical Turk 在线绘制的。测试过程中,将这些分成一组包含 30个字母的背景(background)集和一组包含 20个字母的评估(evaluation)集。测试结果如下:
03
原型网络Prototypical Networks[2] 这篇论文提出的方法思想十分简单,效果也非常好。它学习一个度量空间, 通过计算测试样本和每个类别的原型表达之间的距离来进行分类。文章基于这样的想法:每个类别都存在一个原型表达embedding,这个embedding可以代表这个类别的表征,该类的原型是support set在embedding空间中的均值。然后,分类问题变成在embedding空间中的最近邻。如图所示,c1、c2、c3分别是三个类别的均值中心(称Prototype),将测试样本x进行embedding后,与这3个中心进行距离计算,从而获得x的类别。算法的伪代码如下,非常的简单清晰: 作者在miniImageNet的数据集上进行了测试,miniImageNet数据集包含了100个类别的图片,每类600张,共60000张图片。其中64个类别作为训练集,16个类别作为验证集,20个类别作为测试集,测试结果如下:从上图中的实验结果可以看出,squared Euclidean距离比cosine距离要好14到17个点。另外,文章在训练时采用相对测试时更多的类别数,即训练时每个episodes采用20个类(20 way),而测试对在5个类(5 way)中进行,其效果相对训练时也采用5 way的提升了2.5个点。Prototypical Networks与Matching Networks十分相似,在one shot的场景下,他俩是一样的,但也有几个不同点:1.距离度量方式不同,Matching Networks采用的是cosine度量距离,Prototypical Networks中使用的是基于Bregman的欧几里得距离; 2.网络结构上,Prototypical Networks相比Matching Networks将编码层和分类层合一,参数更少,训练起来也更加方便。参考文献:[1] Oriol Vinyals, Charles Blundell, Tim Lillicrap, Daan Wierstra, et al. Matching networks for one shot learning. In Advances in Neural Information Processing Systems, pages 3630–3638, 2016.[2] Jake Snell, Kevin Swersky, and Richard S Zemel. Prototypical networks for few-shot learning. arXiv preprint arXiv:1703.05175, 2017[3] Allen, Kelsey R, Shelhamer, Evan, Shin, Hanul, et al. Infinite Mixture Prototypes for Few-Shot Learning[J]. 2019.[4] Li C, Wang G, Melo G D. Context-Based Few-Shot Word Representation Learning[C]// IEEE International Conference on Semantic Computing. 2018.[5] Wang, Yaqing, Yao, Quanming, Kwok, James, et al. Generalizing from a Few Examples: A Survey on Few-Shot Learning[J]. 2019.